#include <iostream>
#include <thread>  //跟多线程有关的头文件
#include "myhead.h"
#include <mutex>  //互斥锁头文件
using namespace std;


/*
	C++多线程
*/

int num=0; //商品数量
//定义锁对象
mutex m1;

//任务函数1：生产部门
void task1()
{
	while(1)
	{
		//上锁
		m1.lock();
		num++;
		cout<<"生产了一个产品,目前数量: "<<num<<endl;
		sleep(1);
		//解锁
		m1.unlock();
		//延时，防止自己解的锁，自己又上上去了
		usleep(100);
	}
}

//任务函数2：销售部门
void task2()
{
	while(1)
	{
		//上锁
		m1.lock();
		num--;
		cout<<"销售了一个产品,目前数量: "<<num<<endl;
		sleep(1);
		//解锁
		m1.unlock();
		//延时，防止自己解的锁，自己又上上去了
		usleep(100);
	}
}

int main()
{
	//创建线程1：
	thread t1(task1);
	//创建线程2：
	thread t2(task2);
	
	//回收线程
	t1.join();
	t2.join();
	return 0;
}